/**
 *
 * 用户路由件
 *
 * all/get/post/delete/put 是路由件目前所完全支持的方法
 * 匹配表达式直接作为方法对象的key，触发方法直接作为方法对象的value
 * 我们把每个表达式对应的方法称作为触发方法，这个方法只有两个传入参数
 * ctx 基于原koa2上扩展的功能对象，支持原koa2所有ctx方法
 * next 返回它能够跳过触发函数进入下一个匹配表达式的触发函数
 * ctx {
 * 	handles	处理件对象，通过它去调用对应处理件内方法
 * 	common 工具类
 * 	config 配置数据
 * 	fs 文件操作模块
 * 	uploader 上传文件处理模块
 * 	mysql 数据库连接池，通过它去调用对应连接的操作方法
 * 	redis Redis数据库连接池，通过它去调用对应连接的操作方法
 * 	cron 定时任务池，通过它操作对应定时任务
 * }
 * 
 * 注意事项：
 * 触发方法应该加上async关键字，否则框架可能无法正确同步的返回数据
 * 调用处理件方法时，如果处理件方法使用了async关键字请务必保证加上await关键字等到此方法完成返回
 *
 */

module.exports = {
	get: {

		//检查登录状态 type session
		'/user/checkLogin': async ctx => {
			let {session} = ctx.getData
			console.log(this)
			return await ctx.handles.user.checkLogin(session)
		},

	},
	post: {

		//登录
		'/user/login': async ctx => {
			let {loginType, wxCode, wxEncrypytedData, wxIv} = ctx.postData
			return await ctx.handles.user.login(loginType, {wxCode, wxEncrypytedData, wxIv})
		}

	}
}